package com.zbkj.crmeb.front.request;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.validation.constraints.NotNull;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @author stivepeim
 * @title: OrderPayRequest
 * @projectName crmeb
 * @description: 支付订单参数
 * @date 2020/7/1617:14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="LianlianOrderRequest 对象", description="订单支付")
public class LianlianOrderRequest implements Serializable {

    private static final long serialVersionUID = 307827596559364405L;


    /** 必传:时间戳，格式yyyyMMddHHmmss HH以24小时为准，如20170309143712。timestamp 与连连服务器的时间(北京时间)之间的误差不能超过30分钟。*/
    private String timestamp;

    /** 必传:商户号，ACCP系统分配给平台商户的唯一编号 */
    private String oid_partner;

    /** 必传:
     * 交易类型。
     * 用户充值：USER_TOPUP
     * 商户充值：MCH_TOPUP
     * 普通消费：GENERAL_CONSUME
     * 担保消费：SECURED_CONSUME
     * 注意：当使用余额、优惠券、银行卡等组合支付方式且收款方为多个时，选择担保消费：SECURED_CONSUME
     */
    private String txn_type;

    /** 用户在商户系统中的唯一编号。交易类型非商户充值时必传。 */
    private String user_id;

    /**
     * 用户类型。默认：注册用户。
     * 注册用户：REGISTERED
     * 匿名用户：ANONYMOUS
     */
    private String user_type;

    /** 交易结果异步通知接收地址，建议HTTPS协议。 */
    private String notify_url;

    /**
     * 交易返回地址，支付结果页面返回地址。默认返回方式为post请求。
     * 若想更改为get请求，可在返回地址增加jump=page字段，例如:https://open.lianlianpay.com?jump=page
     */
    private String return_url;

    /**
     * 支付有效期，逾期将会关闭交易。单位：分钟，默认3天；
     * 建议:最短失效时间间隔大于5分钟。
     */
    private String pay_expire;

    /** 商户订单信息 */
    private OrderInfoRequest orderInfo;

    /** 门店信息详情 */
    private StoreInfoRequest store_info;

    /** 门店信息详情 */
    private List<PayeeInfoRequest> payeeInfo;
}
